1. Field of the Invention
The present invention relates to a machine learning apparatus and method that learn a correction value associated with current control based on a current command and a current feedback value in a motor driving apparatus for a three-phase AC motor, and relates to a correction value computation apparatus including the machine learning apparatus, and a motor driving apparatus
2. Description of the Related Art
Motor driving apparatuses for drive control of a three-phase AC motor used as a driving source of a machine tool may be configured with a position control loop, a speed control loop, and a current control loop in many cases.
FIG. 12 is a block drawing schematically illustrating a configuration of a common motor driving apparatus. In a position control loop, a speed command is generated by a speed command generating unit 231, on the basis of information (position feedback value) regarding a rotor actual position of a motor 204 detected by a position detection unit 241 mounted to a three-phase AC motor (hereinafter, also simply referred to as a “motor”) 204, and a position command generated by a position command generating unit (not depicted). In a speed control loop, a current command is generated by a current command generating unit 221 on the basis of information (speed feedback value) regarding rotor speed of the motor 204 detected by a speed detection unit 242 mounted to the motor 204 and a speed command generated by the speed command generating unit 231. In a current control loop, a drive command (for example, PWM control signal) for driving an inverter 202 is generated by a current control unit 211, on the basis of information (current feedback value) regarding current flowing into the motor 204 from the inverter 202 detected by a current detection unit 243, and a current command value generated by a current command generating unit 221. The inverter 202 is, for example, an inverter for motor power supply which converts DC power into AC power by a switching operation of a switching element provided therein, and performs a conversion operation which converts DC power into AC power for driving of the motor 204 by controlling the switching operation of the switching element in the inverter 202 by the received drive command. Since the motor 204 operates with the AC power, serving as driving power, output from the inverter 202, controlling the AC power output from the inverter 202 enables drive control of velocity, torque, or rotor position of the motor 204. Driving the motor 204 causes a moving unit of a machine tool to drive.
In this way, the motor driving apparatus performs current control so that a current command value is equal to a current feedback value detected by the current detection unit.
However, in general, an offset is present in the current detection unit detecting a current feedback value. The offset is unrelated to an operation of a motor, and the offset is an offset amount only related to a current detection unit, and is a noise amount detected even when a motor is in a stop state. This current offset causes torque of a motor to generate a pulsation which changes depending on an electric angle, whereby one torque ripple occurs for each one rotation in an electric angle, and this causes a large error between a rotor position command to a three-phase AC motor and a rotor actual position of the three-phase AC motor. Therefore, it is preferable to perform “offset compensation” which corrects a current feedback value using a current feedback offset correction value.
For example, as described in Japanese Patent Publication No. 3236449, a technique which performs offset compensation in a control method with current feedback to a current command by detecting the actual current value of an AC servo motor is known, the technique obtaining offset data on current feedback by detecting the actual current value of an AC servo motor every time when a voltage command becomes zero; updating a current offset value with a current offset value obtained from the offset data; and feeding back the updated current offset value to the current command to perform the offset compensation.
Normally, a current detection unit detects two-phase actual current (for example, U-phase actual current and V-phase actual current) among U, V, W -phase of three-phase current which flows into a three-phase AC motor from an inverter for motor power supply and outputs the current as a current feedback value. However, in two-phase current feedback value detected by a current detection unit, unbalance occurs between phases due to variation in gain of a current detection element, variation in a current sensing resistor, unbalance of detected gain, a noise, or the like. When current control is performed on the basis of a current feedback value with unbalance between phases, an error between a rotor position command to the three-phase AC motor and a rotor actual position of the three-phase AC motor becomes large. Therefore, it is preferable to remove the unbalance between phases by correcting a current feedback value by using an inter-current-feedback-phase unbalance correction value.
Generally, in a switching operation of switching elements in an inverter for motor power supply, a “switching dead zone” by which switching elements of upper and lower arms in the same phase are not simultaneously turned on (conducted) is provided. Since the switching elements of upper and lower arms are not conducted during time period corresponding to the switching dead zone, current does not flow through the arms. Therefore, current less than a current command actually flow through arms due to existence of the switching dead zone, such that current flows only 9.8 [A] (average value basis) through arms on average value basis in spite of having set a current command to a switching element to, for example, 10 [A]. In order to compensate a decreased amount of current due to a switching dead zone, a countermeasure for adding a current command correction value for a dead zone to the original current command is performed hitherto. For example, when attempting to flow current of 10 [A] through arms, switching operation of a switching element is controlled by using 10.2 [A] which is a “current command after correction” obtained by adding 0.2 [A] as a current command correction value for a dead zone to 10 [A] which is the original current command, so that the current of 10 [A] (average value basis) actually flows through the arms. In this way, a decreased amount of current due to a switching dead zone is compensated by correcting a current command by using a current command correction value for a dead zone.
A motor driving apparatus which drives a three-phase AC motor by performing current control based on a current command and a current feedback value attempts to minimize (optimize the smoothness of a feed) an error between a rotor position command to the three-phase AC motor and a rotor actual position of the three-phase AC motor, by performing correction processing using three correction values of: a current feedback offset correction value used for correcting an offset amount included in the current feedback value; an inter-current-feedback-phase unbalance correction value used for correcting an unbalance between phases in the current feedback value; and a current command correction value for a dead zone used for correcting a current command in order to compensate a decreased amount of current due to a switching dead zone by which switching elements of upper and lower arms in the same phase of an inverter for motor power supply are not simultaneously turned on.
Conventionally, a current feedback offset correction value, an inter-current-feedback-phase unbalance correction value, and a current command correction value for a dead zone are handled as a fixed value (constant value).
However, in practice, a switching dead zone changes with variation of components of a system, ambient air temperature, or the like, and therefore it may not be said that current close to a desired value is caused to flow even when a current command is corrected by using the current command correction value for a dead zone made into a fixed value. A switching dead zone is needed in order not to simultaneously turn on switching elements of upper and lower arms in the same phase of an inverter for motor power supply, but current flowing through switching elements is interrupted during the time corresponding to a switching dead zone, whereby this becomes a factor of generation of an error between a rotor position command and a rotor actual position, and is an obstacle to the improvement of smoothness of a feed.
Hitherto, correction values are independently set without taking the influence between the correction values into account. However, respective correction values have influence on each other in practice, and it is difficult to find out the optimal combination of correction values, and it may not be said that an error between a rotor position command and a rotor actual position is always minimized.
The current feedback offset correction value for minimizing an error between a rotor position command to a three-phase AC motor and a rotor actual position of the three-phase AC motor, the inter-current-feedback-phase unbalance correction value, and the current command correction value for a dead zone depend on temperature in a motor driving apparatus, temperature of the three-phase AC motor, input AC voltage input into the motor driving apparatus, DC link voltage between a rectifier provided in the motor driving apparatus and rectifying the input AC voltage and an inverter for motor power supply, and control voltage used to drive a control apparatus provided in the motor driving apparatus. Therefore, it is preferable to change the current feedback offset correction value, the inter-current-feedback-phase unbalance correction value, and the current command correction value for a dead zone in accordance with changes of the temperature in the motor driving apparatus, the temperature of the three-phase AC motor, and the voltage of each part of the motor driving apparatus, but it is difficult to find out the optimal combination of correction values in real time since these correction values are hitherto taken as fixed values as described above.